<?php
class Cliente_ESB_ESAN_WCF extends CApplicationComponent{
        private $client = null;
        public $ws_url;
		public $ws_url_operacion;
		private $client2 = null;
		
        private function getCliente_ESB_ESAN_WCFInt() {
                if($this->client == null)
                {
                        // para que reconozca nuevas funciones del WS 
                        ini_set (  'soap.wsdl_cache_enable'  ,  0  );
                        ini_set (  'soap.wsdl_cache_ttl'  ,  0  );
                        $this->client = new SoapClient($this->ws_url);
                }
                return $this->client;
        }
		
		private function getCliente_ESB_ESAN_WCFOperacion() {
                if($this->client == null)
                {
                        // para que reconozca nuevas funciones del WS 
                        ini_set (  'soap.wsdl_cache_enable'  ,  0  );
                        ini_set (  'soap.wsdl_cache_ttl'  ,  0  );
                        $this->client = new SoapClient($this->ws_url_operacion);
                }
                return $this->client;
        }
		
		private function getCliente_ESB_ESAN_WCFOperacion2() {
                if($this->client2 == null)
                {
                        // para que reconozca nuevas funciones del WS 
                        ini_set (  'soap.wsdl_cache_enable'  ,  0  );
                        ini_set (  'soap.wsdl_cache_ttl'  ,  0  );
                        $this->client2 = new SoapClient($this->ws_url_operacion);
                }
                return $this->client2;
        }		
		
        public function obtenerParticipante($nroDocumento) {
                return $this->getCliente_ESB_ESAN_WCFInt()->ObtenerPorNroDocumento(array('nroDocumento' => $nroDocumento));
        }
		
        public function obtenerParticipantePorClie_codigo($clie_codigo) {
                return $this->getCliente_ESB_ESAN_WCFInt()->ObtenerPorClie_Codigo(array('clie_codigo' => $clie_codigo));
        }		
		
		public function obtenerParticipantePorNroOrdenVisa($nroOrdenVisa) {
                return $this->getCliente_ESB_ESAN_WCFInt()->ObtenerPorNroVisa(array('nroOrden' => $nroOrdenVisa));
        }	
		
		public function ListarInscritos($pagina, $numero) {
                return $this->getCliente_ESB_ESAN_WCFInt()->ListarInscritos(
				array('pagina' => null
				, 'numero' => null));
        }	
		
        public function ActualizarParticipante($clie_codigo
		, $nombre
		, $paterno
		, $materno
		, $email
		, $telefono
		, $celular
		, $direccion
		) {				
				//$this->ws_url_operacion = "http://localhost:21617/DDG/Operaciones.svc?wsdl";
                return $this->getCliente_ESB_ESAN_WCFOperacion()->ActualizarParticipante(
					array(					
					'clie_codigo' => $clie_codigo
					,'nombre' => $nombre
					, 'paterno' => $paterno
					, 'materno' => $materno
					, 'email' => $email
					, 'telefono' => $telefono
					, 'celular' => $celular		
					, 'direccion' => $direccion
					));
        }
		
        public function RegistarPago(
            $clie_codigo,
            $idDdg,
            $pago,
            $voucher,
            $esPagoRealizado,
            $nroOrdenVisa,
            $nroTransaccion,
            $formaPago) {				
				
                return $this->getCliente_ESB_ESAN_WCFOperacion2()->RegistrarPago(
					array(					
            'clie_codigo' => $clie_codigo,
            'idDdg' =>$idDdg,
            'pago'=>$pago,
            'voucher'=>$voucher,
            'esPagoRealizado'=>$esPagoRealizado,
            'nroOrdenVisa'=>$nroOrdenVisa,
            'nroTransaccion'=>$nroTransaccion,
            'formaPago'=>$formaPago				
					));
        }		
}
